[INFO] cloning repository https://github.com/n4to4/interpreter-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/n4to4/interpreter-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fn4to4%2Finterpreter-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fn4to4%2Finterpreter-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 14ece5df4d2e1a7f60069af47418825a0d3bcc78
[INFO] testing n4to4/interpreter-rs against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fn4to4%2Finterpreter-rs" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/n4to4/interpreter-rs
[INFO] finished tweaking git repo https://github.com/n4to4/interpreter-rs
[INFO] tweaked toml for git repo https://github.com/n4to4/interpreter-rs written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/n4to4/interpreter-rs on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/n4to4/interpreter-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c80e71ddfd4f0d13f0860b78b1ab459b880f174b0d2dde44c673c9638df56fd5
[INFO] running `Command { std: "docker" "start" "-a" "c80e71ddfd4f0d13f0860b78b1ab459b880f174b0d2dde44c673c9638df56fd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c80e71ddfd4f0d13f0860b78b1ab459b880f174b0d2dde44c673c9638df56fd5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c80e71ddfd4f0d13f0860b78b1ab459b880f174b0d2dde44c673c9638df56fd5", kill_on_drop: false }`
[INFO] [stdout] c80e71ddfd4f0d13f0860b78b1ab459b880f174b0d2dde44c673c9638df56fd5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c69893a87932e440041a850ea1cf69a827a9cd4fedbaa1478505b9bd7bb20bc3
[INFO] running `Command { std: "docker" "start" "-a" "c69893a87932e440041a850ea1cf69a827a9cd4fedbaa1478505b9bd7bb20bc3", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling difference v2.0.0
[INFO] [stderr]    Compiling downcast-rs v1.0.3
[INFO] [stderr]    Compiling pretty_assertions v0.5.1
[INFO] [stderr]    Compiling interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/main.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `NOT_EQ` should have an upper camel case name
[INFO] [stdout]   --> src/token.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     NOT_EQ,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `NotEq`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:84:32
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn as_statement(&self) -> &Statement;
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn as_statement(&self) -> &dyn Statement;
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:85:38
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn as_box_statement(self) -> Box<Statement>;
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn as_box_statement(self) -> Box<dyn Statement>;
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub statements: Vec<Box<Statement>>,
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub statements: Vec<Box<dyn Statement>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:88:32
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn as_statement(&self) -> &Statement {
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn as_statement(&self) -> &dyn Statement {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:92:38
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn as_box_statement(self) -> Box<Statement> {
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn as_box_statement(self) -> Box<dyn Statement> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:46:49
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn parse_statement(&mut self) -> Option<Box<ast::Statement>> {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn parse_statement(&mut self) -> Option<Box<dyn ast::Statement>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/repl.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             let mut l = Lexer::new(line);
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Node` is never used
[INFO] [stdout]  --> src/ast.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub trait Node {
[INFO] [stdout]   |           ^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Statement` is never used
[INFO] [stdout]  --> src/ast.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub trait Statement: Node + Downcast + AsStatement {
[INFO] [stdout]   |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Expression` is never used
[INFO] [stdout]   --> src/ast.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait Expression: Node + Downcast {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Program` is never constructed
[INFO] [stdout]   --> src/ast.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct Program {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ast.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Program {
[INFO] [stdout]    | ------------ associated function in this implementation
[INFO] [stdout] 27 |     pub fn new() -> Program {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]   --> src/ast.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Program {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 33 |     fn token_literal(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Identifier` is never constructed
[INFO] [stdout]   --> src/ast.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Identifier {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LetStatement` is never constructed
[INFO] [stdout]   --> src/ast.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct LetStatement {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsStatement` is never used
[INFO] [stdout]   --> src/ast.rs:83:11
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub trait AsStatement {
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]  --> src/parser.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | struct Parser<'a> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/parser.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | impl<'a> Parser<'a> {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 12 |     fn new(l: &'a mut Lexer) -> Self {
[INFO] [stdout]    |        ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     fn next_token(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn parse_program(&mut self) -> Option<Program> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 |     fn parse_statement(&mut self) -> Option<Box<ast::Statement>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     fn parse_let_statement(&mut self) -> Option<ast::LetStatement> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     fn cur_token_is(&self, t: token::TokenType) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn peek_token_is(&self, t: token::TokenType) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     fn expect_peek(&mut self, t: token::TokenType) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `literal` is never read
[INFO] [stdout]  --> src/token.rs:4:9
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub struct Token {
[INFO] [stdout]   |            ----- field in this struct
[INFO] [stdout] 3 |     pub typ: TokenType,
[INFO] [stdout] 4 |     pub literal: String,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `Token` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.09s
[INFO] running `Command { std: "docker" "inspect" "c69893a87932e440041a850ea1cf69a827a9cd4fedbaa1478505b9bd7bb20bc3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c69893a87932e440041a850ea1cf69a827a9cd4fedbaa1478505b9bd7bb20bc3", kill_on_drop: false }`
[INFO] [stdout] c69893a87932e440041a850ea1cf69a827a9cd4fedbaa1478505b9bd7bb20bc3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d04b534a386be87cd11e27d532f823733e2e300f2b185db6ba75bba33cfbe372
[INFO] running `Command { std: "docker" "start" "-a" "d04b534a386be87cd11e27d532f823733e2e300f2b185db6ba75bba33cfbe372", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr]    Compiling interpreter v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `NOT_EQ` should have an upper camel case name
[INFO] [stdout]   --> src/token.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     NOT_EQ,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `NotEq`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:84:32
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn as_statement(&self) -> &Statement;
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 84 |     fn as_statement(&self) -> &dyn Statement;
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:85:38
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn as_box_statement(self) -> Box<Statement>;
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn as_box_statement(self) -> Box<dyn Statement>;
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:24:29
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub statements: Vec<Box<Statement>>,
[INFO] [stdout]    |                             ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 24 |     pub statements: Vec<Box<dyn Statement>>,
[INFO] [stdout]    |                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:88:32
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn as_statement(&self) -> &Statement {
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 88 |     fn as_statement(&self) -> &dyn Statement {
[INFO] [stdout]    |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/ast.rs:92:38
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn as_box_statement(self) -> Box<Statement> {
[INFO] [stdout]    |                                      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 92 |     fn as_box_statement(self) -> Box<dyn Statement> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:46:49
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn parse_statement(&mut self) -> Option<Box<ast::Statement>> {
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 46 |     fn parse_statement(&mut self) -> Option<Box<dyn ast::Statement>> {
[INFO] [stdout]    |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn print_if_string(s: &Any) {
[INFO] [stdout]     |                            ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn print_if_string(s: &dyn Any) {
[INFO] [stdout]     |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/parser.rs:130:37
[INFO] [stdout]     |
[INFO] [stdout] 130 |     fn assert_let_statement(s: &Box<Statement>, name: &str) {
[INFO] [stdout]     |                                     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 130 |     fn assert_let_statement(s: &Box<dyn Statement>, name: &str) {
[INFO] [stdout]     |                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/repl.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |             let mut l = Lexer::new(line);
[INFO] [stdout]    |                 ----^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `statement_node` is never used
[INFO] [stdout]   --> src/ast.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub trait Statement: Node + Downcast + AsStatement {
[INFO] [stdout]    |           --------- method in this trait
[INFO] [stdout] 10 |     fn statement_node(&self);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `Expression` is never used
[INFO] [stdout]   --> src/ast.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub trait Expression: Node + Downcast {
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `token_literal` is never used
[INFO] [stdout]   --> src/ast.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl Program {
[INFO] [stdout]    | ------------ method in this implementation
[INFO] [stdout] 33 |     fn token_literal(&self) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_statement` is never used
[INFO] [stdout]   --> src/ast.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub trait AsStatement {
[INFO] [stdout]    |           ----------- method in this trait
[INFO] [stdout] 84 |     fn as_statement(&self) -> &Statement;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_if_string` is never used
[INFO] [stdout]    --> src/parser.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 |     fn print_if_string(s: &Any) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.53s
[INFO] running `Command { std: "docker" "inspect" "d04b534a386be87cd11e27d532f823733e2e300f2b185db6ba75bba33cfbe372", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d04b534a386be87cd11e27d532f823733e2e300f2b185db6ba75bba33cfbe372", kill_on_drop: false }`
[INFO] [stdout] d04b534a386be87cd11e27d532f823733e2e300f2b185db6ba75bba33cfbe372
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 52b9b7dda5e9e51399397f9c9f1eb3d9206e745c50650e2a61bfecbb5a301c03
[INFO] running `Command { std: "docker" "start" "-a" "52b9b7dda5e9e51399397f9c9f1eb3d9206e745c50650e2a61bfecbb5a301c03", kill_on_drop: false }`
[INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024`
[INFO] [stderr] warning: variant `NOT_EQ` should have an upper camel case name
[INFO] [stderr]   --> src/token.rs:27:5
[INFO] [stderr]    |
[INFO] [stderr] 27 |     NOT_EQ,
[INFO] [stderr]    |     ^^^^^^ help: convert the identifier to upper camel case: `NotEq`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ast.rs:84:32
[INFO] [stderr]    |
[INFO] [stderr] 84 |     fn as_statement(&self) -> &Statement;
[INFO] [stderr]    |                                ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 84 |     fn as_statement(&self) -> &dyn Statement;
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ast.rs:85:38
[INFO] [stderr]    |
[INFO] [stderr] 85 |     fn as_box_statement(self) -> Box<Statement>;
[INFO] [stderr]    |                                      ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 85 |     fn as_box_statement(self) -> Box<dyn Statement>;
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ast.rs:24:29
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub statements: Vec<Box<Statement>>,
[INFO] [stderr]    |                             ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 24 |     pub statements: Vec<Box<dyn Statement>>,
[INFO] [stderr]    |                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ast.rs:88:32
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn as_statement(&self) -> &Statement {
[INFO] [stderr]    |                                ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 88 |     fn as_statement(&self) -> &dyn Statement {
[INFO] [stderr]    |                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/ast.rs:92:38
[INFO] [stderr]    |
[INFO] [stderr] 92 |     fn as_box_statement(self) -> Box<Statement> {
[INFO] [stderr]    |                                      ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 92 |     fn as_box_statement(self) -> Box<dyn Statement> {
[INFO] [stderr]    |                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/parser.rs:46:49
[INFO] [stderr]    |
[INFO] [stderr] 46 |     fn parse_statement(&mut self) -> Option<Box<ast::Statement>> {
[INFO] [stderr]    |                                                 ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 46 |     fn parse_statement(&mut self) -> Option<Box<dyn ast::Statement>> {
[INFO] [stderr]    |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parser.rs:104:28
[INFO] [stderr]     |
[INFO] [stderr] 104 |     fn print_if_string(s: &Any) {
[INFO] [stderr]     |                            ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 104 |     fn print_if_string(s: &dyn Any) {
[INFO] [stderr]     |                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/parser.rs:130:37
[INFO] [stderr]     |
[INFO] [stderr] 130 |     fn assert_let_statement(s: &Box<Statement>, name: &str) {
[INFO] [stderr]     |                                     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 130 |     fn assert_let_statement(s: &Box<dyn Statement>, name: &str) {
[INFO] [stderr]     |                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/repl.rs:17:17
[INFO] [stderr]    |
[INFO] [stderr] 17 |             let mut l = Lexer::new(line);
[INFO] [stderr]    |                 ----^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `statement_node` is never used
[INFO] [stderr]   --> src/ast.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr]  9 | pub trait Statement: Node + Downcast + AsStatement {
[INFO] [stderr]    |           --------- method in this trait
[INFO] [stderr] 10 |     fn statement_node(&self);
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait `Expression` is never used
[INFO] [stderr]   --> src/ast.rs:14:11
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub trait Expression: Node + Downcast {
[INFO] [stderr]    |           ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `token_literal` is never used
[INFO] [stderr]   --> src/ast.rs:33:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl Program {
[INFO] [stderr]    | ------------ method in this implementation
[INFO] [stderr] 33 |     fn token_literal(&self) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `as_statement` is never used
[INFO] [stderr]   --> src/ast.rs:84:8
[INFO] [stderr]    |
[INFO] [stderr] 83 | pub trait AsStatement {
[INFO] [stderr]    |           ----------- method in this trait
[INFO] [stderr] 84 |     fn as_statement(&self) -> &Statement;
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_if_string` is never used
[INFO] [stderr]    --> src/parser.rs:104:8
[INFO] [stderr]     |
[INFO] [stderr] 104 |     fn print_if_string(s: &Any) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `interpreter` (bin "interpreter" test) generated 15 warnings (run `cargo fix --bin "interpreter" -p interpreter --tests` to apply 9 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.02s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/interpreter-b5d740aba415ef77)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test parser::tests::let_statements ... ok
[INFO] [stdout] test token::tests::next_token ... ok
[INFO] [stdout] test token::tests::next_token2 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "52b9b7dda5e9e51399397f9c9f1eb3d9206e745c50650e2a61bfecbb5a301c03", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "52b9b7dda5e9e51399397f9c9f1eb3d9206e745c50650e2a61bfecbb5a301c03", kill_on_drop: false }`
[INFO] [stdout] 52b9b7dda5e9e51399397f9c9f1eb3d9206e745c50650e2a61bfecbb5a301c03
